package com.ruoyi.system.service.impl.shopping;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.shopping.CartItemMapper;
import com.ruoyi.system.domain.shopping.CartItem;
import com.ruoyi.system.service.shopping.ICartItemService ;

@Service
public class CartItemServiceImpl implements ICartItemService {
    @Autowired
    private CartItemMapper cartItemMapper;

    @Override
    public List<CartItem> selectCartItemList(CartItem cartItem) {
        return cartItemMapper.selectCartItemList(cartItem);
    }

    /**
     * 添加购物车：如果存在则累加数量，不存在则新增
     */
    @Override
    public int addOrUpdateCartItem(CartItem cartItem) {
        CartItem existingItem = cartItemMapper.selectCartItemByUserAndProduct(cartItem);
        if (existingItem != null) {
            // 如果是列表页直接修改数量，前端会传cartItemId，走updateCartItem逻辑
            // 如果是“添加”逻辑，这里可以做累加，本例简化为更新为最新数量
            cartItem.setCartItemId(existingItem.getCartItemId());
            return cartItemMapper.updateCartItem(cartItem);
        } else {
            return cartItemMapper.insertCartItem(cartItem);
        }
    }

    @Override
    public int deleteCartItemById(Long cartItemId) {
        return cartItemMapper.deleteCartItemById(cartItemId);
    }
}
